(in-package :TRAPS)
; Generated from #P"macintosh-hd:hd3:CInterface Translator:Source Interfaces:IOConfigDirectory.h"
; at Sunday July 2,2006 7:28:44 pm.
; 
;  * Copyright (c) 1998-2002 Apple Computer, Inc. All rights reserved.
;  *
;  * @APPLE_LICENSE_HEADER_START@
;  *
;  * The contents of this file constitute Original Code as defined in and
;  * are subject to the Apple Public Source License Version 1.1 (the
;  * "License").  You may not use this file except in compliance with the
;  * License.  Please obtain a copy of the License at
;  * http://www.apple.com/publicsource and read it before using this file.
;  *
;  * This Original Code and all software distributed under the License are
;  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
;  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
;  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
;  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
;  * License for the specific language governing rights and limitations
;  * under the License.
;  *
;  * @APPLE_LICENSE_HEADER_END@
;  
; #ifndef __IOCONFIGDIRECTORY_H__
; #define __IOCONFIGDIRECTORY_H__

(require-interface "libkern/c++/OSObject")

(require-interface "IOKit/IOReturn")

(require-interface "IOKit/firewire/IOFireWireFamilyCommon")

#|class OSData;
|#

#|class OSString;
|#

#|class OSIterator;
|#

#|class IOFireWireDevice;
|#
; ! @class IOConfigDirectory 
; 
#|
 confused about CLASS IOConfigDirectory #\: public OSObject #\{ OSDeclareAbstractStructors #\( IOConfigDirectory #\) #\; protected #\: int fStart #\;;  Offset into ROM of start of this dir
 int fType #\;                                  ;  Directory type
 int fNumEntries #\;                            ;  In directory
; ! @struct ExpansionData
;     @discussion This structure will be used to expand the capablilties of the class in the future.
;     
 struct ExpansionData #\{ #\} #\;
; ! @var reserved
;     Reserved for future use.  (Internal use only)  
 ExpansionData * reserved #\; virtual bool initWithOffset #\( int start #\, int type #\) #\; virtual const UInt32 * getBase #\( #\) = 0 #\; virtual IOReturn createIterator #\( UInt32 testVal #\, UInt32 testMask #\, OSIterator * &iterator #\) #\; virtual IOConfigDirectory * getSubDir #\( int start #\, int type #\) = 0 #\; public #\:
; !
;         @function update
;         makes sure that the ROM has at least the specified capacity,
;         and that the ROM is uptodate from its start to at least the
;         specified quadlet offset.
;         @result kIOReturnSuccess if the specified offset is now
;         accessable at romBase[offset].
;     
 virtual IOReturn update #\( UInt32 offset #\, const UInt32 * &romBase #\) = 0 #\;
; !
;         @function getKeyType
;         Gets the data type for the specified key
;         @param type on return, set to the data type
;         @result kIOReturnSuccess if the key exists in the dictionary
;     
 virtual IOReturn getKeyType #\( int key #\, IOConfigKeyType &type #\) #\;
; !
;         @function getKeyValue
;         Gets the value for the specified key, in a variety of forms.
;         @param value on return, set to the data type
;         @param text if non-zero, on return points to the
;         string description of the field, or NULL if no text found.
;         @result kIOReturnSuccess if the key exists in the dictionary
;         and is of a type appropriate for the value parameter
;         @param value reference to variable to store the entry's value
;     
 virtual IOReturn getKeyValue #\( int key #\, UInt32 &value #\, OSString ** text = NULL #\) #\; virtual IOReturn getKeyValue #\( int key #\, OSData * &value #\, OSString ** text = NULL #\) #\; virtual IOReturn getKeyValue #\( int key #\, IOConfigDirectory * &value #\, OSString ** text = NULL #\) #\; virtual IOReturn getKeyOffset #\( int key #\, FWAddress &value #\, OSString ** text = NULL #\) #\;
; !
;         @function getIndexType
;         Gets the data type for entry at the specified index
;         @param type on return, set to the data type
;         @result kIOReturnSuccess if the index exists in the dictionary
;     
 virtual IOReturn getIndexType #\( int index #\, IOConfigKeyType &type #\) #\;
; !
;         @function getIndexKey
;         Gets the key for entry at the specified index
;         @param key on return, set to the key
;         @result kIOReturnSuccess if the index exists in the dictionary
;     
 virtual IOReturn getIndexKey #\( int index #\, int &key #\) #\;
; !
;         @function getIndexValue
;         Gets the value at the specified index of the directory,
;         in a variety of forms.
;         @param type on return, set to the data type
;         @result kIOReturnSuccess if the index exists in the dictionary
;         and is of a type appropriate for the value parameter
;         @param value reference to variable to store the entry's value
;     
 virtual IOReturn getIndexValue #\( int index #\, UInt32 &value #\) #\; virtual IOReturn getIndexValue #\( int index #\, OSData * &value #\) #\; virtual IOReturn getIndexValue #\( int index #\, OSString * &value #\) #\; virtual IOReturn getIndexValue #\( int index #\, IOConfigDirectory * &value #\) #\; virtual IOReturn getIndexOffset #\( int index #\, FWAddress &value #\) #\; virtual IOReturn getIndexOffset #\( int index #\, UInt32 &value #\) #\;
; !
;         @function getIndexEntry
;         Gets the entry at the specified index of the directory,
;         as a raw UInt32.
;         @param entry on return, set to the entry value
;         @result kIOReturnSuccess if the index exists in the dictionary
;         @param value reference to variable to store the entry's value
;     
 virtual IOReturn getIndexEntry #\( int index #\, UInt32 &value #\) #\;
; !
;         @function getSubdirectories
;         Creates an iterator over the subdirectories of the directory.
;         @param iterator on return, set to point to an OSIterator
;         @result kIOReturnSuccess if the iterator could be created
;     
 virtual IOReturn getSubdirectories #\( OSIterator * &iterator #\) #\;
; !
;         @function getKeySubdirectories
;         Creates an iterator over subdirectories of a given type of the directory.
;         @param key type of subdirectory to iterate over
;         @param iterator on return, set to point to an OSIterator
;         @result kIOReturnSuccess if the iterator could be created
;     
 virtual IOReturn getKeySubdirectories #\( int key #\, OSIterator * &iterator #\) #\; int getType #\( #\) const #\; int getNumEntries #\( #\) const #\; protected #\: virtual const UInt32 * lockData #\( void #\) = 0 #\; virtual void unlockData #\( void #\) = 0 #\; virtual IOReturn updateROMCache #\( UInt32 offset #\, UInt32 length #\) = 0 #\; virtual IOReturn checkROMState #\( void #\) = 0 #\; private #\: OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 0 #\) #\; OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 1 #\) #\; OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 2 #\) #\; OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 3 #\) #\; OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 4 #\) #\; OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 5 #\) #\; OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 6 #\) #\; OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 7 #\) #\; OSMetaClassDeclareReservedUnused #\( IOConfigDirectory #\, 8 #\) #\;
|#

; #endif /* __IOCONFIGDIRECTORY_H__ */


(provide-interface "IOConfigDirectory")